home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 June / CHIP 2005-06.iso / program / grafik / myriad.exe / Disk1 / data1.cab / Intgclt_-_Common / igcinc.h next >
Encoding:
C/C++ Source or Header  |  2005-05-12  |  62.8 KB  |  1,502 lines

  1. /*************************************************************
  2. *  File name: IGCINC.H                                       *
  3. *                                                            *
  4. *  Description:                                              *
  5. *    Data structure declarations for Myriad integration.     *
  6. *                                                            *
  7. **************************************************************/
  8.  
  9. #ifndef INC_IGCINC_H
  10. #define INC_IGCINC_H
  11.  
  12. #define MAX_DESCRIPTION_SIZE            (256)
  13. #define MAX_INI_STRING_SIZE             (512)
  14. #define MAX_EXPORT_DELIMITER_SIZE       (128)
  15. #define EXECUTE_SET_RETURN_DATA_SIZE    (256)
  16. #define MAX_PATH_FILENAME               (256)
  17. #define MAX_ISO_STRING_SIZE             (256)
  18. #define MAX_ASSOCIATED_FILE_TYPE        (128)
  19. #define MAX_MENU_TEXT_SIZE              (50)
  20. #define MAX_CHANGEMARK_TEXT_SIZE        (512)
  21. #define AUTHOR_LAYER_NAME_SIZE          (128)  /* Maximum possible layer name size */
  22. #define MAX_ISO_BORDER_LINES            (10)
  23. #define INQUIRE_DESCRIPTION_SIZE        (256)
  24. #define IGC_NOTIFY_CALLBACK_MESSAGE     (WM_USER+10000)
  25. #define INTG_EXECUTE_UNKNOWN_COMMAND    (-1)
  26. #define INTG_EXECUTE_INTERNAL_COMMAND   (-1)
  27.  
  28. #ifndef IGENUM    
  29. #  ifdef __WIN32
  30.     typedef int IGENUM;
  31. #  else
  32.     typedef long IGENUM;
  33. #  endif
  34. #endif
  35.  
  36. #ifndef IGINT
  37. #  ifdef __WIN32
  38.     typedef int IGINT;
  39. #  else
  40.     typedef long IGINT;
  41. #  endif
  42. #endif
  43.  
  44. /* This enumerated type is used to identify the execution command */
  45. typedef enum {INTG_EXECUTE_NOTIFY_RETURN,
  46.               INTG_EXECUTE_SET_NOTIFICATIONS,
  47.               INTG_EXECUTE_ALTERNATEVIEW,
  48.               INTG_EXECUTE_CLIP,
  49.               INTG_EXECUTE_CLOSEALL,
  50.               INTG_EXECUTE_CLOSEMARKUP,
  51.               INTG_EXECUTE_CLOSESESSION,
  52.               INTG_EXECUTE_DELETEITEM,
  53.               INTG_EXECUTE_DISABLEALTVIEW,
  54.               INTG_EXECUTE_FOLDERCLEAR,
  55.               INTG_EXECUTE_INITFOLDERFILE,
  56.               INTG_EXECUTE_LOADFOLDERFILE,
  57.               INTG_EXECUTE_INVERTCOLORS,
  58.               INTG_EXECUTE_LOCKWINDOW,
  59.               INTG_EXECUTE_OPENMARKUP,
  60.               INTG_EXECUTE_PAGE,
  61.               INTG_EXECUTE_PANDISPLACEMENT,
  62.               INTG_EXECUTE_PRINTVIEWPORT,
  63.               INTG_EXECUTE_RASTER,
  64.               INTG_EXECUTE_REPAINT,
  65.               INTG_EXECUTE_ROTATE,
  66.               INTG_EXECUTE_SAVEMARKUP,
  67.               INTG_EXECUTE_SETFRAMEWINDOW,
  68.               INTG_EXECUTE_SETMARKUPCOLOR,
  69.               INTG_EXECUTE_SETRETURNDATA,
  70.               INTG_EXECUTE_TOGGLETOOLBAR,
  71.               INTG_EXECUTE_WINDOW,
  72.               INTG_EXECUTE_ZOOM,
  73.               INTG_EXECUTE_REMOVEMENU,
  74.               INTG_EXECUTE_ENABLEMENUITEM,
  75.               INTG_EXECUTE_ENABLECOLORSEL,
  76.               INTG_EXECUTE_SETAUTHORNAME,
  77.               INTG_EXECUTE_SETLAYERNAME,
  78.               INTG_EXECUTE_GETLAYERINFO,
  79.               INTG_EXECUTE_ENABLEDOCMODIFY,
  80.               INTG_EXECUTE_REDLINETOOL,
  81.               INTG_EXECUTE_AUTHORTOOL,
  82.               INTG_EXECUTE_EYEGLASSTOOL,
  83.               INTG_EXECUTE_BIRDSEYETOOL,
  84.               INTG_EXECUTE_CHANGEMARKTOOL,
  85.               INTG_EXECUTE_SELECTTOOL,
  86.               INTG_EXECUTE_ZOOMTOOL,
  87.               INTG_EXECUTE_PREVIOUSDOC,
  88.               INTG_EXECUTE_NEXTDOC,
  89.               INTG_EXECUTE_MONOCHROME,
  90.               INTG_EXECUTE_REDLINECHANGEMARK,
  91.               INTG_EXECUTE_DOCSTACKTOOL,
  92.               INTG_EXECUTE_SIDEBYSIDE,
  93.               INTG_EXECUTE_SETISOSTRING,
  94.               INTG_EXECUTE_GETISOSTRING,
  95.               INTG_EXECUTE_SET_FOCUS,
  96.               INTG_EXECUTE_ADDUDMENU,
  97.               INTG_EXECUTE_REMOVEUDMENU,
  98.               INTG_EXECUTE_CLEARUDMENU,
  99.               INTG_EXECUTE_ENABLEUDMENU,
  100.               INTG_EXECUTE_SET_ON_TOP,
  101.               INTG_EXECUTE_EXPORT_TO_FILE,
  102.               INTG_EXECUTE_INQUIRE_DOCUMENT,
  103.               INTG_EXECUTE_INQUIRE_SYSTEM,
  104.               INTG_EXECUTE_RENAME,
  105.               INTG_EXECUTE_PRINTSETTINGS,
  106.               INTG_EXECUTE_CLOSEVIEWPORT,
  107.               INTG_EXECUTE_CLEARCOMMANDQUEUE,
  108.               INTG_EXECUTE_MAINWINDOW,
  109.               INTG_EXECUTE_CLOSEDOCUMENT,
  110.               INTG_EXECUTE_SELECTAUTHOR,
  111.               INTG_EXECUTE_GETAUTHORS,
  112.               INTG_EXECUTE_SETDOCUMENTFOCUS,
  113.               INTG_EXECUTE_VIEWCHANGEMARK,
  114.               INTG_EXECUTE_GETCHANGEMARKS,
  115.               INTG_EXECUTE_FILEOPENTOOL,
  116.               INTG_EXECUTE_NEWMARKUP,
  117.               INTG_EXECUTE_DISPLAYISOTOOL,
  118.               INTG_EXECUTE_EXPORTCHANGEMARKS,
  119.               INTG_EXECUTE_PRINTDOCSTACK,
  120.               INTG_EXECUTE_NEWDOCSTACK,
  121.               INTG_EXECUTE_OPENDOCSTACK,
  122.               INTG_EXECUTE_SAVEDOCSTACK,
  123.               INTG_EXECUTE_RUNSILENT,
  124.               INTG_EXECUTE_USEINTEGRATIONOPEN,
  125.               INTG_EXECUTE_SETWYSIWYG,
  126.               INTG_EXECUTE_SETDEFAULTLAYERNAME,
  127.               INTG_EXECUTE_INTEGRATIONENABLED,
  128.               INTG_EXECUTE_GETPROCESSEDISOSTRING,
  129.               INTG_EXECUTE_MODIFYINIVALUE,
  130.               INTG_EXECUTE_ADDPAGE,
  131.               INTG_EXECUTE_ADDMANYPAGES,
  132.               INTG_EXECUTE_PUBLISH3DASSEMBLY,
  133.               INTG_EXECUTE_SET3DRENDERMODE,
  134.               INTG_EXECUTE_SET3DPROJECTIONMODE,
  135.               INTG_EXECUTE_DISABLE3DVIEWSET,
  136.               INTG_EXECUTE_SET3DVIEW,
  137.               INTG_EXECUTE_NEW3DVIEW,
  138.               INTG_EXECUTE_SAVEVIEWSET,
  139.               INTG_EXECUTE_DELETEALL3DVIEWS
  140.              }ExecutionCommandType;
  141.  
  142. struct ExecuteHeader{
  143.     unsigned long        FullPacketLength;   /* The length of the entire packet including header     */
  144.     unsigned long        DataPacketLength;   /* The length of the data portion of the packet         */
  145.     IGENUM               MessageType;        /* The message type                                     */
  146.     char                 Data[1];            /* The data packet address (i.e. &Data is the address   */
  147.                                              /* of the data for this message)                        */
  148. };
  149.  
  150. /* These are the notification request types used to indicate which      */
  151. /* notification messages the integrating application wishes to receive. */
  152. typedef enum {INTG_NOTIFY_REQUEST_NONE               =0x0000,
  153.               INTG_NOTIFY_REQUEST_ALL                =0x0001,
  154.               INTG_NOTIFY_REQUEST_EXECUTION_RETURNS  =0x0002,
  155.               INTG_NOTIFY_REQUEST_MOUSE              =0x0004,
  156.               INTG_NOTIFY_REQUEST_INTELLIGENTOBJ     =0x0008,
  157.               INTG_NOTIFY_REQUEST_MARKUP             =0x0010,
  158.               INTG_NOTIFY_REQUEST_FILE_LOAD          =0x0020,
  159.               INTG_NOTIFY_REQUEST_VIEWPORT           =0x0040,
  160.               INTG_NOTIFY_REQUEST_EXIT               =0x0080,
  161.               INTG_NOTIFY_REQUEST_DATABASE_LOOKUP    =0x0100,
  162.               INTG_NOTIFY_REQUEST_PRINT              =0x0200,
  163.               INTG_NOTIFY_REQUEST_ISO_BANNER         =0x0400,
  164.               INTG_NOTIFY_REQUEST_UD_MENU            =0x0800,
  165.               INTG_NOTIFY_REQUEST_CHANGEMARK         =0x1000,
  166.               INTG_NOTIFY_REQUEST_RUN_SILENT         =0x2000,
  167.               INTG_NOTIFY_REQUEST_INTOBJ_LOAD_LAUNCH =0x4000,
  168.               INTG_NOTIFY_REQUEST_3D                 =0x8000
  169.              }NotificationRequestType;
  170.  
  171. /* These are the notification message types which identify the type of  */
  172. /* data packet being received by the integrating application            */
  173. typedef enum {INTG_NOTIFY_NONE,
  174.               INTG_NOTIFY_EXECUTION_RETURN,
  175.               INTG_NOTIFY_MOUSEMOVE,
  176.               INTG_NOTIFY_LBUTTONDOWN,
  177.               INTG_NOTIFY_LBUTTONUP,
  178.               INTG_NOTIFY_LBUTTONDBLCLICK,
  179.               INTG_NOTIFY_EXIT,
  180.               INTG_LOAD_FILEBEGIN,
  181.               INTG_LOAD_BLOCKBEGIN,
  182.               INTG_LOAD_ATTRIBUTE,
  183.               INTG_LOAD_BLOCKEND,
  184.               INTG_LOAD_FILEEND,
  185.               INTG_DISPLAY_FILEBEGIN,
  186.               INTG_DISPLAY_BLOCKBEGIN,
  187.               INTG_DISPLAY_ATTRIBUTE,
  188.               INTG_DISPLAY_BLOCKEND,
  189.               INTG_DISPLAY_FILEEND,
  190.               INTG_LAUNCH_ATTRIBBLOCK,
  191.               INTG_NOTIFY_SET_RETURN_DATA,
  192.               INTG_NOTIFY_FILE_LOADED,
  193.               INTG_NOTIFY_VIEWPORT_CLOSE,
  194.               INTG_NOTIFY_OPEN_MARKUP,
  195.               INTG_NOTIFY_SAVE_MARKUP,
  196.               INTG_NOTIFY_MARKUP_SAVED,
  197.               INTG_NOTIFY_CLOSE_MARKUP,
  198.               INTG_NOTIFY_IMAGE_CHANGE,
  199.               INTG_NOTIFY_GET_LAYER_INFO,
  200.               INTG_NOTIFY_GET_ISO_STRING,
  201.               INTG_NOTIFY_DATABASE_LOOKUP,
  202.               INTG_NOTIFY_PRINT,
  203.               INTG_NOTIFY_PRINT_COMPLETE,
  204.               INTG_NOTIFY_UD_MENU,
  205.               INTG_NOTIFY_OPEN_MARKUP_REQUEST,
  206.               INTG_NOTIFY_DOCUMENT_INFO,
  207.               INTG_NOTIFY_SYSTEM_INFO,
  208.               INTG_NOTIFY_SAVEAS_MARKUP_REQUEST,
  209.               INTG_NOTIFY_GET_AUTHORS,
  210.               INTG_NOTIFY_CHANGEMARK_VIEWED,
  211.               INTG_NOTIFY_GET_CHANGEMARKS,
  212.               INTG_NOTIFY_NEW_MARKUP,
  213.               INTG_NOTIFY_RUN_SILENT_MSG,
  214.               INTG_NOTIFY_ISO_DISPLAY,
  215.               INTG_NOTIFY_ISO_EDIT,
  216.               INTG_NOTIFY_DATABASE_ISO_LOOKUP,
  217.               INTG_NOTIFY_INTEGRATION_ENABLED,
  218.               INTG_NOTIFY_3D_MODEL_LOADED,
  219.               INTG_NOTIFY_3D_COMPONENT_SELECTION_CHANGED,
  220.               INTG_NOTIFY_3D_COMPONENT_LIST_ENABLED,
  221.               INTG_NOTIFY_PRINT_PREVIEW_COMPLETE,    /* Add Koji Ogawa Mar/11/1999 - print preview complete.    */
  222.               INTG_NOTIFY_OPEN_MVS_REQUEST,
  223.               INTG_NOTIFY_SAVEAS_MVS_REQUEST,
  224.               INTG_NOTIFY_MVS_SAVED,
  225.               INTG_NOTIFY_CLOSE_MVS,
  226.               INTG_NOTIFY_HTML_EXPORT_FILE_WRITTEN,
  227.               INTG_NOTIFY_MVS_VIEW_CREATED,
  228.               INTG_NOTIFY_VIEW_SET_FILE_LOADED,
  229.               INTG_NOTIFY_VIEW_SET_NEEDS_SAVING
  230.              }NotifyMessageType;
  231.  
  232. /* These are used to indicate the status of the data which the          */
  233. /* integrating application has received.                                */
  234. typedef enum {INTG_STATUS_COMPLETE_DATA,
  235.               INTG_STATUS_PARTIAL_DATA,
  236.               INTG_STATUS_NO_DATA,
  237.               INTG_STATUS_REPLY_REQUESTED
  238.              }DataStatusType;
  239.  
  240. /* This is the header structure which is appears at the beginning of    */
  241. /* all data packets received by the integrating application from Myriad */
  242.  
  243. struct NotifyHeader{
  244.     unsigned long      FullPacketLength;    /* The length of the entire packet including header       */
  245.     unsigned long      DataPacketLength;    /* The length of the data portion of the packet           */
  246.     IGENUM             MessageType;         /* The message type                                       */
  247.     IGENUM             DataStatus;          /* The status of the data in the packet                   */
  248.     char               Data;                /* The data packet address (i.e. &Data is the address     */
  249.                                             /* of the data for this message)                          */
  250. };
  251.  
  252. /* This structure is used to retrieve the data passed from Myriad in the form of a notification message */
  253. struct NotifyCallbackRecord{
  254.   IGBOOL               Message;             /* The message ID for the notification                    */
  255.   IGBOOL               DataStatus;          /* The status of the data attached to the notification    */
  256.   char                 Data;                /* The address of the data attached to the notification   */
  257. };
  258.  
  259. /*------------------------------------------------------------------------------------------------------*/
  260. /* The following structure definitions represent the data which is passed to Myriad from a client       */
  261. /* application (execution commands).                                                                    */
  262. /*------------------------------------------------------------------------------------------------------*/
  263.  
  264. /* This data structure is prepended to all execution notification return messages to indicate which     */
  265. /* notify message is being replied to.                                                                  */
  266. typedef struct ExecuteNotifyReturn{
  267.   IGENUM          ReplyMessage;
  268. }ExecuteNotifyReturn, *pExecuteNotifyReturn;
  269.  
  270. /*------------------------------------------------------------------------------------------------------*/
  271. /* The following structure definition is for internal use only.                                         */
  272. /*------------------------------------------------------------------------------------------------------*/
  273. struct ExecuteParseFailure{
  274.   IGENUM          Message;
  275. };
  276.  
  277. /* This structure is passed to the Myriad application when an exit has been requested. It is sent to    */
  278. /* Myriad as an execution notification command.                                                         */
  279. struct NotifyExitReturn{
  280.   struct ExecuteNotifyReturn Header;
  281.   IGBOOL                     bOKToExit;
  282. };
  283.  
  284. struct NotifyDatabaseLookupReturn{
  285.   struct ExecuteNotifyReturn Header;
  286.   char                       Filename[MAX_PATH_FILENAME];
  287. };
  288.  
  289. struct NotifyOpenMarkupRequestReturn{
  290.   struct ExecuteNotifyReturn Header;
  291.   char                       Filename[MAX_PATH_FILENAME];
  292. };
  293.  
  294. struct NotifySaveAsMarkupRequestReturn{
  295.   struct ExecuteNotifyReturn Header;
  296.   char                       Filename[MAX_PATH_FILENAME];
  297. };
  298.  
  299. struct NotifyMarkupSavedReturn{
  300.   struct ExecuteNotifyReturn Header;
  301.   char                       Filename[MAX_PATH_FILENAME];
  302. };
  303.  
  304. struct NotifyOpenMVSRequestReturn{
  305.   struct ExecuteNotifyReturn Header;
  306.   char                       Filename[MAX_PATH_FILENAME];
  307. };
  308.  
  309. struct NotifySaveAsMVSRequestReturn{
  310.   struct ExecuteNotifyReturn Header;
  311.   char                       Filename[MAX_PATH_FILENAME];
  312. };
  313.  
  314. struct NotifyMVSSavedReturn{
  315.   struct ExecuteNotifyReturn Header;
  316.   char                       Filename[MAX_PATH_FILENAME];
  317. };
  318.  
  319. struct NotifyDatabaseISOLookupReturn{
  320.   struct ExecuteNotifyReturn Header;
  321.   char Returnstring[MAX_INI_STRING_SIZE];
  322. };
  323.  
  324. struct NotifyPrintReturn{
  325.   struct ExecuteNotifyReturn Header;
  326.   IGBOOL                     bOKToPrint;
  327. };
  328.  
  329. struct NotifyRunSilentMessageReturn{
  330.   struct ExecuteNotifyReturn Header;
  331.   IGBOOL                     bDisplayMessage;       /* Whether or not Myriad is to put up the default message box for this message */
  332.   IGINT                      Result;                /* The message box result if bDisplayMessage is FALSE */
  333. };
  334.  
  335. struct NotifyISODisplayReturn{
  336.   struct ExecuteNotifyReturn Header;
  337.   IGBOOL                     bOKToDisplay;          /* Whether or not it is OK to display the ISO information */
  338. };
  339.  
  340. struct NotifyViewSetNeedsSavingReturn{
  341.   struct ExecuteNotifyReturn Header;
  342.   char                       MVSFilename[MAX_PATH_FILENAME];         /* The filename to use for the view set file */
  343.   char                       MVSMarkupFilename[MAX_PATH_FILENAME];   /* The filename to use for the associated markup */
  344.   IGBOOL                     bPerformMVSSave;                        /* Whether or not to perform the saving of the view set */
  345.   IGBOOL                     bPerformMarkupSave;                     /* Whether or not to perform the saving of any markup file associated with the view set */
  346.   IGBOOL                     bUpdateAllModifiedViews;                /* If all the modified view set views are to be updated before saving */
  347.   IGBOOL                     bRestoreAllModifiedViews;               /* If all the modified view set views are to be restored before saving */
  348. };
  349.  
  350. struct ExecuteSetNotifications{
  351.   long     NotificationTypes;
  352. };
  353.  
  354. /////Guido's Hint Line, issue #8399//////////////////////////////////////////
  355. //
  356. // While updating the Agile integration, I discovered, that the 'dbdesc:' 
  357. // string for describing the display name of the loaded document is now also 
  358. // required in the 'Filename' portion of the structure.
  359. //
  360. // Example:
  361. // strcpy( ffload.Description, "dbdesc:Gunk.DWG" );
  362. // but also!
  363. // strcpy( ffload.Filename, "dbms:C:\Green\Sloshy\Gunk.DWG:dbdesc:Gunk.DWG" );
  364. // 
  365. // The extra 'dbdesc:' is needed for instance in the building of the layer
  366. // tree (see CLayerPage::buildImageLayerList), when the option 'Hide Paths'
  367. // is switched on.
  368. //
  369. // For questions or fan mail write to: guidos@infograph.com
  370. /////////////////////////////////////////////////////////////////////////////
  371. struct ExecuteFFLoad{
  372.   char     Filename[MAX_PATH_FILENAME];
  373.   char     Description[MAX_DESCRIPTION_SIZE];
  374.   char     RedlineFilename[MAX_PATH_FILENAME];
  375.   char     AssociatedFileType[MAX_ASSOCIATED_FILE_TYPE];
  376.   IGBOOL   bAddToFolderOnly;
  377.   IGBOOL   bForceNewDocument;
  378.   char     OverlayFilename[MAX_PATH_FILENAME];
  379. };
  380.  
  381. struct ExecuteFFInit{
  382.   char     Filename[MAX_PATH_FILENAME];
  383.   IGBOOL   bShowOpenDialog;
  384. };
  385.  
  386. struct ExecuteOpenMarkup{
  387.   char     Filename[MAX_PATH_FILENAME];         /* Filename of markup file to open on current image */
  388. };
  389.  
  390. typedef enum {MARKUPFORMAT_DEFAULT, MARKUPFORMAT_MRK, MARKUPFORMAT_DXF, MARKUPFORMAT_XML, MARKUPFORMAT_TXT}ExecuteSaveMarkupTypes;
  391.  
  392. struct ExecuteSaveMarkup{
  393.    IGENUM   SaveMarkupType;
  394.    char     Filename[MAX_PATH_FILENAME];         /* Filename of markup file to save to */
  395. };
  396.  
  397. typedef enum {VIEW3D_ISOMETRIC,
  398.               VIEW3D_DIMETRIC,
  399.               VIEW3D_TRIMETRIC,
  400.               VIEW3D_FRONT,
  401.               VIEW3D_BACK,
  402.               VIEW3D_LEFT,
  403.               VIEW3D_RIGHT,
  404.               VIEW3D_TOP,
  405.               VIEW3D_BOTTOM
  406.              }ExecuteView3DTypes;
  407.  
  408. struct ExecuteSet3DView{
  409.    IGENUM   View3DType;
  410. };
  411.  
  412. struct ExecuteNew3DView{
  413.    char     name[MAX_DESCRIPTION_SIZE];
  414.    char     note[MAX_CHANGEMARK_TEXT_SIZE];
  415. };
  416.  
  417. struct ExecuteSaveViewset{
  418.    char     Filename[MAX_PATH_FILENAME];         /* Filename of viewset file to save to */
  419. };
  420.  
  421. struct ExecuteDeleteAll3DViews{
  422.    IGBOOL   WarnOnDelete;                       /* Whether or not to warn the user that the views are about to be deleted */
  423. };
  424.  
  425. typedef enum {EXECUTE_ZOOM_IN,    EXECUTE_ZOOM_OUT,   EXECUTE_ZOOM_EXTENTS, EXECUTE_ZOOM_PREVIOUS,
  426.               EXECUTE_ZOOM_POINT, EXECUTE_ZOOM_WIDTH, EXECUTE_ZOOM_WORLD}ExecuteZoomTypes;
  427.  
  428. struct ExecuteZoom{
  429.   double MinX;         /* Minimum X of zoom window (only required for world coordinate zoom) */
  430.   double MinY;         /* Minimum Y of zoom window (only required for world coordinate zoom) */
  431.   double MaxX;         /* Maximum X of zoom window (only required for world coordinate zoom) */
  432.   double MaxY;         /* Maximum Y of zoom window (only required for world coordinate zoom) */
  433.   IGENUM ZoomType;     /* Type of zoom to perform */
  434. };
  435.  
  436. typedef enum {EXECUTE_RASTER_SAMPLE_DRAW, EXECUTE_RASTER_FULL_DRAW, EXECUTE_RASTER_SCALE_TO_GRAY}ExecuteRasterTypes;
  437.  
  438. struct ExecuteRaster{
  439.   IGENUM RasterType;
  440. };
  441.  
  442. typedef enum {EXECUTE_ROTATE_PREVIOUS, EXECUTE_ROTATE_NEXT, EXECUTE_ROTATE_0, EXECUTE_ROTATE_90, EXECUTE_ROTATE_180,
  443.               EXECUTE_ROTATE_270}ExecuteRotateTypes;
  444.  
  445. struct ExecuteRotate{
  446.   IGENUM RotateType;
  447. };
  448.  
  449. typedef enum {EXECUTE_WINDOW_TILE_HORZ,     EXECUTE_WINDOW_TILE_VERT, EXECUTE_WINDOW_CASCADE,  
  450.               EXECUTE_WINDOW_FIT,           EXECUTE_WINDOW_MAXIMIZE,  EXECUTE_WINDOW_MINIMIZE, 
  451.               EXECUTE_WINDOW_RESTORE,       EXECUTE_WINDOW_ARRANGE_ICONS}ExecuteWindowTypes;
  452.  
  453. struct ExecuteWindow{
  454.   IGENUM WindowType;
  455. };
  456.  
  457. typedef enum {EXECUTE_MAIN_WINDOW_MINIMIZE, EXECUTE_MAIN_WINDOW_MAXIMIZE, EXECUTE_MAIN_WINDOW_RESTORE}ExecuteMainWindowTypes;
  458.  
  459. struct ExecuteMainWindow{
  460.   IGENUM WindowType;
  461. };
  462.  
  463. typedef enum {EXECUTE_SET_RETURN_DATA_SET, EXECUTE_SET_RETURN_DATA_GET}ExecuteSetReturnDataTypes;
  464.  
  465. struct ExecuteSetReturnData{
  466.   IGENUM SetType;
  467.   char   Data[EXECUTE_SET_RETURN_DATA_SIZE];
  468. };
  469.  
  470. typedef enum {EXECUTE_PAGE_NEXT,  EXECUTE_PAGE_PREVIOUS,
  471.               EXECUTE_PAGE_FIRST, EXECUTE_PAGE_LAST,
  472.               EXECUTE_PAGE_SPECIFIC}ExecutePageTypes;
  473.  
  474. struct ExecutePage{
  475.   IGENUM         PageType;
  476.   unsigned short PageNumber;  /* Only specified if type is EXECUTE_PAGE_SPECIFIC */
  477. };
  478.  
  479. struct ExecuteSetFrameWindow{
  480.   unsigned short    Left;
  481.   unsigned short    Top;
  482.   unsigned short    Width;
  483.   unsigned short    Height;
  484. };
  485.  
  486. struct ExecuteDisableAltView{
  487.   IGBOOL bDisableView;
  488. };
  489.  
  490. typedef enum {EXECUTE_CLIP_ALL, EXECUTE_CLIP_ASK}ExecuteClipTypes;
  491.  
  492. struct ExecuteClip{
  493.   IGENUM ClipType;
  494. };
  495.  
  496. struct ExecuteLockWindow{
  497.   IGBOOL bLockWindow;
  498. };      
  499.  
  500. typedef enum {EXECUTE_PRINT_QUICK, EXECUTE_PRINT_DIALOG}ExecutePrintTypes;
  501.  
  502. struct ExecutePrint{
  503.   IGENUM PrintType;                  /* The type of print to perform */
  504.   IGBOOL bPrintCancelDialog;         /* If the print cancellation dialog is to be displayed (optional) - Default is TRUE */
  505.   IGBOOL bOverlayISOBanners;         /* If ISO banners are to be overlayed on the image (optional) - Default is FALSE */
  506. };
  507.  
  508. typedef enum {
  509.               EXECUTE_EMENU_SECTION,
  510.               EXECUTE_EMENU_FILE_OPEN,
  511.               EXECUTE_EMENU_DOCSTACK,
  512.               EXECUTE_EMENU_ASSOC,
  513.               EXECUTE_EMENU_PRINT_SETUP,
  514.               EXECUTE_EMENU_RECENT_FILE,
  515.               EXECUTE_EMENU_APP_EXIT,
  516.               EXECUTE_EMENU_CHANGEMARKS,
  517.               EXECUTE_EMENU_OPTIONS,
  518.               EXECUTE_EMENU_SIDE_BY_SIDE,
  519.               EXECUTE_EMENU_VIEW_TOOLBAR,
  520.               EXECUTE_EMENU_VIEW_STATUS_BAR,
  521.               EXECUTE_EMENU_HELP_CONTENTS,
  522.               EXECUTE_EMENU_HELP_SEARCH,
  523.               EXECUTE_EMENU_HELP_SUPPORT,
  524.               EXECUTE_EMENU_HELP_ABOUT,
  525.               EXECUTE_EMENU_REDLINE_NEW,
  526.               EXECUTE_EMENU_REDLINE_OPEN,
  527.               EXECUTE_EMENU_REDLINE_SAVE,
  528.               EXECUTE_EMENU_REDLINE_SAVEAS,
  529.               EXECUTE_EMENU_REDLINE_CLOSE,
  530.               EXECUTE_EMENU_NEXT_DOC,
  531.               EXECUTE_EMENU_PREV_DOC,
  532.               EXECUTE_EMENU_PRINT,
  533.               EXECUTE_EMENU_PRINT_PREVIEW,
  534.               EXECUTE_EMENU_PRINT_QUEUE,
  535.               EXECUTE_EMENU_PRINT_QUEUE_SETUP,
  536.               EXECUTE_EMENU_SEND_MAIL,
  537.               EXECUTE_EMENU_UNDO,
  538.               EXECUTE_EMENU_REDO,
  539.               EXECUTE_EMENU_MYRIAD_FILE,
  540.               EXECUTE_EMENU_MYRIAD_EDIT,
  541.               EXECUTE_EMENU_MYRIAD_VIEW,
  542.               EXECUTE_EMENU_MYRIAD_REDLINE,
  543.               EXECUTE_EMENU_MYRIAD_TOOLS,
  544.               EXECUTE_EMENU_MYRIAD_ANALYZE,
  545.               EXECUTE_EMENU_MYRIAD_WINDOW,
  546.               EXECUTE_EMENU_MYRIAD_HELP,
  547.               EXECUTE_EMENU_MYRIAD_EDIT_REDLINE,
  548.               EXECUTE_EMENU_DELETE,
  549.               EXECUTE_EMENU_CAPTURE,
  550.               EXECUTE_EMENU_SELECT,
  551.               EXECUTE_EMENU_BIRDSEYE,
  552.               EXECUTE_EMENU_EYEGLASS,
  553.               EXECUTE_EMENU_ZOOM,
  554.               EXECUTE_EMENU_ZOOM_WIDTH,
  555.               EXECUTE_EMENU_ZOOM_EXTENTS,
  556.               EXECUTE_EMENU_PAN,
  557.               EXECUTE_EMENU_FIND,
  558.               EXECUTE_EMENU_REDRAW,
  559.               EXECUTE_EMENU_CONSOLIDATE,
  560.               EXECUTE_EMENU_SET_REDLINE_LAYER,
  561.               EXECUTE_EMENU_CREATE_SYMBOL,
  562.               EXECUTE_EMENU_REMOVE_SYMBOL,
  563.               EXECUTE_EMENU_AUTHOR_TOOL,
  564.               EXECUTE_EMENU_REDLINE_TOOL,
  565.               EXECUTE_EMENU_CHANGE_MARKS,
  566.               EXECUTE_EMENU_REDLINE,
  567.               EXECUTE_EMENU_LAYERING,
  568.               EXECUTE_EMENU_CALIBRATE,
  569.               EXECUTE_EMENU_MEASURE,
  570.               EXECUTE_EMENU_TOOLBAR,
  571.               EXECUTE_EMENU_STATUS_BAR,
  572.               EXECUTE_EMENU_PAGE_CONTROL,
  573.               EXECUTE_EMENU_NEW_WINDOW,
  574.               EXECUTE_EMENU_FIT_WINDOW,
  575.               EXECUTE_EMENU_CASCADE,
  576.               EXECUTE_EMENU_TILE_HORZ,
  577.               EXECUTE_EMENU_TILE_VERT,
  578.               EXECUTE_EMENU_ARRANGE_ICONS,
  579.               EXECUTE_EMENU_CLOSE_ALL,
  580.               EXECUTE_EMENU_QUICK_PRINT,
  581.               EXECUTE_EMENU_MONOCHROME,
  582.               EXECUTE_EMENU_FULL_DRAW,
  583.               EXECUTE_EMENU_INVERT,
  584.               EXECUTE_EMENU_THUMB_NAIL,
  585.               EXECUTE_EMENU_FIRST_PAGE,
  586.               EXECUTE_EMENU_PREV_PAGE,
  587.               EXECUTE_EMENU_NEXT_PAGE,
  588.               EXECUTE_EMENU_LAST_PAGE,
  589.               EXECUTE_EMENU_ZOOM_IN,
  590.               EXECUTE_EMENU_ZOOM_OUT,
  591.               EXECUTE_EMENU_TOOLBAR_ORIENT,
  592.               EXECUTE_EMENU_MRU,
  593.               EXECUTE_EMENU_FILE_CLOSE,
  594.               EXECUTE_EMENU_REDLINE_POSTIT,
  595.               EXECUTE_EMENU_REDLINE_HILITE,
  596.               EXECUTE_EMENU_REDLINE_SEARCH,
  597.               EXECUTE_EMENU_REDLINE_CARET,
  598.               EXECUTE_EMENU_REDLINE_LINE,
  599.               EXECUTE_EMENU_REDLINE_TEXT,
  600.               EXECUTE_EMENU_REDLINE_CROSSOUT,
  601.               EXECUTE_EMENU_REDLINE_SIZEUP,
  602.               EXECUTE_EMENU_REDLINE_SIZEDOWN,
  603.               EXECUTE_EMENU_REDLINE_ENT_FBOX,
  604.               EXECUTE_EMENU_REDLINE_ENT_FPGON,
  605.               EXECUTE_EMENU_REDLINE_ENT_CIRCLE,
  606.               EXECUTE_EMENU_REDLINE_ENT_RECT,
  607.               EXECUTE_EMENU_REDLINE_ENT_CLOUD,
  608.               EXECUTE_EMENU_REDLINE_ENT_CROSSOUT,
  609.               EXECUTE_EMENU_REDLINE_ENT_BOX,
  610.               EXECUTE_EMENU_REDLINE_ENT_LINE,
  611.               EXECUTE_EMENU_REDLINE_ENT_SKETCH,
  612.               EXECUTE_EMENU_REDLINE_ENT_TEXT,
  613.               EXECUTE_EMENU_REDLINE_ENT_TEXT_INS,
  614.               EXECUTE_EMENU_REDLINE_ENT_TEXT_CROSSOUT,
  615.               EXECUTE_EMENU_REDLINE_ENT_TEXT_LEADER,
  616.               EXECUTE_EMENU_FILE_UPDATE,
  617.               EXECUTE_EMENU_FILE_NEW,
  618.               EXECUTE_EMENU_SAVE_COPY_AS,
  619.               EXECUTE_EMENU_CUT,
  620.               EXECUTE_EMENU_COPY,
  621.               EXECUTE_EMENU_PASTE,
  622.               EXECUTE_EMENU_ARRANGE_WINDOW,
  623.               EXECUTE_EMENU_CASCADE_WINDOW,
  624.               EXECUTE_EMENU_TILE_WINDOW_HORZ,
  625.               EXECUTE_EMENU_HELP_USING,
  626.               EXECUTE_EMENU_VIEW_TEXT_TOOLBAR,
  627.               EXECUTE_EMENU_SHOW_PAGE_CONTROL,
  628.               EXECUTE_EMENU_ZOOM_PREVIOUS,
  629.               EXECUTE_EMENU_ZOOM_POINT,
  630.               EXECUTE_EMENU_ROTATE_NEXT,
  631.               EXECUTE_EMENU_ROTATE_PREVIOUS,
  632.               EXECUTE_EMENU_EYEGLASS_CLOSE,
  633.               EXECUTE_EMENU_EYEGLASS_CLOSE_SYNC,
  634.               EXECUTE_EMENU_BIRDSEYE_CLOSE,
  635.               EXECUTE_EMENU_BIRDSEYE_STICKAROUND,
  636.               EXECUTE_EMENU_REDLINE_SYNC_COLOR,
  637.               EXECUTE_EMENU_REDLINE_SYNC_LINE_WIDTH,
  638.               EXECUTE_EMENU_REDLINE_SYNC_ARROW_SIZE,
  639.               EXECUTE_EMENU_REDLINE_PALETTE,
  640.               EXECUTE_EMENU_REDLINE_CHANGE,
  641.               EXECUTE_EMENU_REDLINE_SYMBOL,
  642.               EXECUTE_EMENU_ISO_DISPLAY,
  643.               EXECUTE_EMENU_ISO_EDIT,
  644.               EXECUTE_EMENU_PRINT_REGION,
  645.               EXECUTE_EMENU_SYSTEM_ADMIN,
  646.               EXECUTE_EMENU_MYRIAD_FILE_DOCSTACK,
  647.               EXECUTE_EMENU_3D_VIEWING,           
  648.               EXECUTE_EMENU_3D_NAV_TOOLBAR,   
  649.               EXECUTE_EMENU_3D_ANALYZE_TOOLBAR,   
  650.               EXECUTE_EMENU_3D_COMP_TOOLBAR,      
  651.               EXECUTE_EMENU_REDLINE_REVIEW,
  652.               EXECUTE_EMENU_REDLINE_ADDTOFILE,
  653.               EXECUTE_EMENU_REDLINE_REMOVEFROMFILE,
  654.               EXECUTE_EMENU_3D_LOAD_TOOLBAR,
  655.               EXECUTE_EMENU_PUBLISH,
  656.               EXECUTE_EMENU_VIEWSET_OPEN,
  657.               EXECUTE_EMENU_VIEWSET_SAVE,
  658.               EXECUTE_EMENU_VIEWSET_SAVEAS,
  659.               EXECUTE_EMENU_VIEWSET_TOOLBAR,
  660.               EXECUTE_EMENU_VIEWSET_NEW_VIEW,
  661.               EXECUTE_EMENU_VIEWSET_MODIFY_VIEW,
  662.               EXECUTE_EMENU_VIEWSET_NEW_REDLINE_VIEW
  663.              }ExecuteEnableMenuTypes;
  664.  
  665. struct ExecuteEnableMenuItem{
  666.   IGENUM Menu;
  667.   IGBOOL bEnable;
  668.   IGBOOL bRemove; // TRUE, by default
  669. };
  670.  
  671. typedef enum {EXECUTE_REMOVE_MENU_FILE,    EXECUTE_REMOVE_MENU_EDIT,
  672.               EXECUTE_REMOVE_MENU_VIEW,    EXECUTE_REMOVE_MENU_TOOLS,
  673.               EXECUTE_REMOVE_MENU_REDLINE, EXECUTE_REMOVE_MENU_WINDOW,
  674.               EXECUTE_REMOVE_MENU_HELP,    EXECUTE_REMOVE_MENU_ANALYZE}ExecuteRemoveMenuTypes;
  675.  
  676. struct ExecuteRemoveMenu{
  677.   IGENUM RemoveMenu;
  678. };
  679.  
  680. struct ExecuteDeleteItem{
  681.   char    Filename[MAX_PATH_FILENAME];
  682. };
  683.  
  684. struct ExecuteSetMarkupColor{
  685.   unsigned short          LayerID;
  686.   unsigned short          LayerColor;
  687. };
  688.  
  689. struct ExecuteSetAuthorName{
  690.   char                    AuthorName[AUTHOR_LAYER_NAME_SIZE];
  691. };
  692.  
  693. struct ExecuteSetLayerName{
  694.   unsigned short          LayerID;
  695.   char                    LayerName[AUTHOR_LAYER_NAME_SIZE];
  696. };
  697.  
  698. struct ExecuteEnableDocModify{
  699.   IGBOOL                  bEnable;
  700. };
  701.  
  702. struct ExecuteMonochrome{
  703.   IGBOOL                  bEnable;
  704. };
  705.  
  706. struct ExecuteRedlineChangeMark{
  707.   IGBOOL                  bEnable;
  708. };
  709.  
  710. struct ExecuteSideBySide{
  711.   char                    LeftFilename[MAX_PATH_FILENAME];          /* Left side image */
  712.   char                    RightFilename[MAX_PATH_FILENAME];         /* Right side image */
  713.   IGBOOL                  bOpenOriginals;                           /* If the original file should be loaded */
  714.   IGBOOL                  bGhostVisible;                            /* If ghosting is visible or not */
  715. };
  716.  
  717. struct ExecuteEnableColorSel{
  718.   IGBOOL                  bEnable;
  719. };
  720.  
  721. typedef enum {EXECUTE_ISO_FONT,       EXECUTE_ISO_CLEAR_ALL,    EXECUTE_ISO_RESTORE_DEFAULTS,
  722.               EXECUTE_ISO_TOPLEFT,    EXECUTE_ISO_TOPCENTER,    EXECUTE_ISO_TOPRIGHT,
  723.               EXECUTE_ISO_BOTTOMLEFT, EXECUTE_ISO_BOTTOMCENTER, EXECUTE_ISO_BOTTOMRIGHT,
  724.               EXECUTE_ISO_LEFTTOP,    EXECUTE_ISO_LEFTCENTER,   EXECUTE_ISO_LEFTBOTTOM,
  725.               EXECUTE_ISO_RIGHTTOP,   EXECUTE_ISO_RIGHTCENTER,  EXECUTE_ISO_RIGHTBOTTOM,
  726.               EXECUTE_ISO_WATERMARK} ExecuteISOStringTypes;
  727.  
  728. struct ExecuteSetISOString{
  729.   IGENUM                  StringType;                   /* The type of ISO string this is ExecuteISOStringTypes */
  730.   unsigned short          StringNumber;                 /* The index of this string within the string type         */
  731.   char                    String[MAX_ISO_STRING_SIZE];  /* The string itself                                       */
  732. };
  733.  
  734. struct ExecuteGetISOString{
  735.   IGENUM                  StringType;                   /* The type of ISO string this is ExecuteISOStringTypes */
  736.   unsigned short          StringNumber;                 /* The index of this string within the string type         */
  737. };
  738.  
  739. struct ExecuteGetProcessedISOString{
  740.   IGENUM                  StringType;                   /* The type of ISO string this is ExecuteISOStringTypes */
  741.   unsigned short          StringNumber;                 /* The index of this string within the string type         */
  742. };
  743.  
  744. typedef enum {EXECUTE_UD_MENU_MAIN_STARTUP, EXECUTE_UD_MENU_MAIN_DOC_VIEW, EXECUTE_UD_MENU_RIGHT_POPUP} ExecuteUDMenuLocationTypes;
  745.  
  746. typedef enum {EXECUTE_UD_MENU_MENU, EXECUTE_UD_MENU_SUBMENU, 
  747.               EXECUTE_UD_MENU_MENUITEM, EXECUTE_UD_MENU_SEPARATOR} ExecuteUDMenuTypes;
  748.  
  749. #define EXECUTE_UD_MENU_NULL_PARENT   (-1)
  750.  
  751. struct ExecuteAddUDMenu{
  752.   IGENUM                  MenuLocation;                 /* The location of the menu */
  753.   IGENUM                  MenuType;                     /* The type of the menu */
  754.   char                    Text[MAX_MENU_TEXT_SIZE];     /* The text of the menu */
  755.   IGINT                   MenuID;                       /* User defined menu ID */  
  756.   IGINT                   MenuOffset;                   /* Zero based offset of the menu item (Main menu only) */
  757.   IGINT                   ParentID;                     /* ID of parent menu to contain this menu - Optional */
  758. };
  759.  
  760. struct ExecuteRemoveUDMenu{
  761.   IGINT                   MenuID;                       /* User defined menu ID */  
  762. };
  763.  
  764. struct ExecuteEnableUDMenu{
  765.   IGINT                   MenuID;                       /* User defined menu ID */  
  766.   IGBOOL                  bEnable;                      /* Whether to enable or disable the menu element */
  767. };
  768.  
  769. struct ExecuteSetOnTop{
  770.   IGBOOL                  bAlwaysOnTop;                 /* Whether to make Myriad's window always on top or not */
  771. };
  772.  
  773. typedef enum {EXECUTE_EXPORT_BMP, EXECUTE_EXPORT_JPG, EXECUTE_EXPORT_PNG, EXECUTE_EXPORT_DLS} ExecuteExportTypes;
  774.  
  775. struct ExecuteExportToFile{
  776.   char                    FileName[MAX_PATH_FILENAME];  /* Filename to write to */
  777.   IGENUM                  FileType;                     /* Type of file to export */
  778. };
  779.  
  780. struct ExecuteRename{
  781.   char                    OldFileName[MAX_PATH_FILENAME]; /* Name of the existing file in the document stack */
  782.   char                    NewFileName[MAX_PATH_FILENAME]; /* New name for the existing file */
  783. };
  784.  
  785. /* These declarations are for the printer specification support. They are used by both INTG_EXECUTE_PRINT_SETTINGS, 
  786.    and INTG_NOTIFY_SYSTEM_INFO.
  787. */
  788.  
  789. #define MAX_PRINTER_NAME           (256)
  790. #define MIN_PRINT_SCALE_PERCENT    (0.0001)
  791. #define MAX_PRINT_SCALE_PERCENT    (1000.0)
  792.  
  793. typedef enum {EXECUTE_PRINT_RANGE_ALL, EXECUTE_PRINT_RANGE_PAGES, EXECUTE_PRINT_RANGE_CURRENT} ExecutePrintRangeTypes;
  794.  
  795. typedef enum {EXECUTE_PRINT_SCALE_PAGE, EXECUTE_PRINT_SCALE_TO_SCALE} ExecutePrintScaleTypes;
  796.  
  797. typedef enum {EXECUTE_PRINT_ORIENT_PORTRAIT, EXECUTE_PRINT_ORIENT_LANDSCAPE} ExecutePrintOrientTypes;
  798.  
  799. typedef enum {EXECUTE_PRINT_DOCUMENT, EXECUTE_PRINT_NOTES} ExecutePrintWhatTypes;
  800.  
  801. typedef enum {EXECUTE_PRINT_SIZE_DEFAULT,
  802.               EXECUTE_PRINT_SIZE_LETTER,             
  803.               EXECUTE_PRINT_SIZE_LEGAL,        
  804.               EXECUTE_PRINT_SIZE_A4,          
  805.               EXECUTE_PRINT_SIZE_CSHEET,     
  806.               EXECUTE_PRINT_SIZE_DSHEET,
  807.               EXECUTE_PRINT_SIZE_ESHEET,             
  808.               EXECUTE_PRINT_SIZE_LETTERSMALL,  
  809.               EXECUTE_PRINT_SIZE_TABLOID,     
  810.               EXECUTE_PRINT_SIZE_LEDGER,     
  811.               EXECUTE_PRINT_SIZE_STATEMENT,
  812.               EXECUTE_PRINT_SIZE_EXECUTIVE,          
  813.               EXECUTE_PRINT_SIZE_A3,           
  814.               EXECUTE_PRINT_SIZE_A4SMALL,     
  815.               EXECUTE_PRINT_SIZE_A5,         
  816.               EXECUTE_PRINT_SIZE_B4, 
  817.               EXECUTE_PRINT_SIZE_B5,                 
  818.               EXECUTE_PRINT_SIZE_FOLIO,        
  819.               EXECUTE_PRINT_SIZE_QUARTO,      
  820.               EXECUTE_PRINT_SIZE_10X14,      
  821.               EXECUTE_PRINT_SIZE_11X17,    
  822.               EXECUTE_PRINT_SIZE_NOTE,               
  823.               EXECUTE_PRINT_SIZE_ENV9,         
  824.               EXECUTE_PRINT_SIZE_ENV10,       
  825.               EXECUTE_PRINT_SIZE_ENV11,      
  826.               EXECUTE_PRINT_SIZE_ENV12,        
  827.               EXECUTE_PRINT_SIZE_ENV14,              
  828.               EXECUTE_PRINT_SIZE_ENVDL,        
  829.               EXECUTE_PRINT_SIZE_ENVC5,       
  830.               EXECUTE_PRINT_SIZE_ENVC3,      
  831.               EXECUTE_PRINT_SIZE_ENVC4, 
  832.               EXECUTE_PRINT_SIZE_ENVC6,              
  833.               EXECUTE_PRINT_SIZE_ENVC65,       
  834.               EXECUTE_PRINT_SIZE_ENVB4,       
  835.               EXECUTE_PRINT_SIZE_ENVB5,      
  836.               EXECUTE_PRINT_SIZE_ENVB6, 
  837.               EXECUTE_PRINT_SIZE_ENVITALY,           
  838.               EXECUTE_PRINT_SIZE_ENVMONARCH,   
  839.               EXECUTE_PRINT_SIZE_ENVPERSONAL, 
  840.               EXECUTE_PRINT_SIZE_FANFOLD_US, 
  841.               EXECUTE_PRINT_SIZE_FANFOLD_STDGERMAN,
  842.               EXECUTE_PRINT_SIZE_FANFOLD_LGLGERMAN,  
  843.               EXECUTE_PRINT_SIZE_ISOB4,       
  844.               EXECUTE_PRINT_SIZE_JAPANESE_POSTCARD,  
  845.               EXECUTE_PRINT_SIZE_9X11,
  846.               EXECUTE_PRINT_SIZE_10X11,
  847.               EXECUTE_PRINT_SIZE_15X11,
  848.               EXECUTE_PRINT_SIZE_ENV_INVITE,
  849.               EXECUTE_PRINT_SIZE_LETTER_EXTRA,
  850.               EXECUTE_PRINT_SIZE_LEGAL_EXTRA,
  851.               EXECUTE_PRINT_SIZE_TABLOID_EXTRA,
  852.               EXECUTE_PRINT_SIZE_A4_EXTRA,
  853.               EXECUTE_PRINT_SIZE_LETTER_TRANSVERSE,
  854.               EXECUTE_PRINT_SIZE_A3_TRANSVERSE,
  855.               EXECUTE_PRINT_SIZE_A3_EXTRA_TRANSVERSE,
  856.               EXECUTE_PRINT_SIZE_A4_TRANSVERSE,
  857.               EXECUTE_PRINT_SIZE_LETTER_EXTRA_TRANSVERSE,
  858.               EXECUTE_PRINT_SIZE_A5_TRANSVERSE,
  859.               EXECUTE_PRINT_SIZE_B5_TRANSVERSE,
  860.               EXECUTE_PRINT_SIZE_A_PLUS,
  861.               EXECUTE_PRINT_SIZE_B_PLUS,
  862.               EXECUTE_PRINT_SIZE_LETTER_PLUS,
  863.               EXECUTE_PRINT_SIZE_A4_PLUS,
  864.               EXECUTE_PRINT_SIZE_A3_EXTRA,
  865.               EXECUTE_PRINT_SIZE_A5_EXTRA,
  866.               EXECUTE_PRINT_SIZE_B5_EXTRA,
  867.               EXECUTE_PRINT_SIZE_A2,
  868.               EXECUTE_PRINT_SIZE_USER
  869.              } ExecutePrintPaperSizeTypes;
  870.  
  871. struct PrintSettings{
  872.   char                    PrinterName[MAX_PRINTER_NAME];      /* The name of the printer to use */
  873.   IGENUM                  PaperSize;                          /* The paper size to use */
  874.   IGINT                   Copies;                             /* Number of copies to print */
  875.   IGENUM                  ScaleType;                          /* What type of image scaling to use */
  876.   double                  ScalePercent;                       /* Percentage to scale (1-999) */
  877.   IGBOOL                  bGenerateBitmap;                    /* Whether to generate bitmap output or not */
  878.   IGBOOL                  bBlackAndWhite;                     /* Whether to print black and white or not */
  879.   IGBOOL                  bOutlineFills;                      /* Whether to print with filled entities outlined or not */
  880.   IGENUM                  Orientation;                        /* The orientation of the printed output */
  881.   IGENUM                  PrintWhat;                          /* What to print (document or notes) */
  882.   IGENUM                  PrintRange;                         /* The print range */
  883.   IGINT                   FromPage;                           /* From page (only used for EXECUTE_PRINT_RANGE_PAGES */
  884.   IGINT                   ToPage;                             /* To page (only used for EXECUTE_PRINT_RANGE_PAGES */
  885.   IGINT                   UserPaperWidth;                     /* Custom paper width (only for EXECUTE_PRINT_SIZE_USER*/
  886.   IGINT                   UserPaperHeight;                    /* Custom paper height (only for EXECUTE_PRINT_SIZE_USER*/
  887. };
  888.  
  889. struct ExecutePrintSettings{
  890.    IGBOOL                 bSetPrintSettings;                  /* Whether to set print settings (TRUE) or clear print settings (FALSE) */
  891.    struct PrintSettings   PrintSettings;                      /* The PrintSettings structure to use for subsequent prints */
  892. };
  893.  
  894. struct ExecuteCloseDocument{
  895.   char                    Filename[MAX_PATH_FILENAME];        /* The name of the view to close */
  896. };
  897.  
  898. struct ExecuteSelectAuthor{
  899.   char                    AuthorName[AUTHOR_LAYER_NAME_SIZE]; /* The name of the author to select or deselect */
  900.   IGBOOL                  bSelect;                            /* Select the author (TRUE) or deselect the author (FALSE) */
  901. };
  902.  
  903. struct ExecuteSetDocumentFocus{
  904.   char                    Filename[MAX_PATH_FILENAME];        /* The name of the view to set focus to */
  905. };
  906.  
  907. struct ExecuteViewChangemark{
  908.   char                    Title[MAX_DESCRIPTION_SIZE];        /* The title of the changemark to view */
  909. };
  910.  
  911. struct ExecuteGetChangemarks{
  912.   IGBOOL                  bFilteredOnly;                      /* Get only the filtered changemarks (TRUE) or all changemarks (FALSE) - Default is FALSE */
  913. };
  914.  
  915. struct ExecuteExportChangemarks{
  916.   char                    Filename[MAX_PATH_FILENAME];                 /* File to export the changemark information to */
  917.   IGBOOL                  bFilteredOnly;                               /* Get only the filtered changemarks (TRUE) or all changemarks (FALSE) - Default is FALSE */
  918.   char                    FieldDelimiter[MAX_EXPORT_DELIMITER_SIZE];   /* The delimiter to use between fields in the output file */
  919.   char                    StringDelimiter[MAX_EXPORT_DELIMITER_SIZE];  /* The delimiter to use to indicate string fields in the output file */
  920. };
  921.  
  922. struct ExecutePrintDocstack{
  923.   char                    Filename[MAX_PATH_FILENAME];                 /* The DSF file to print (optional) - Default is to use current Document Stack */
  924. };
  925.  
  926. struct ExecuteOpenDocstack{
  927.   char                    Filename[MAX_PATH_FILENAME];                 /* The DSF file to open. If no file specified, then the Open Document Stack dialog is displayed */
  928.   IGBOOL                  bShowDialog;                                 /* If the Document Stack Dialog is to be shown - default TRUE */
  929. };
  930.  
  931. struct ExecuteSaveDocstack{
  932.   char                    Filename[MAX_PATH_FILENAME];                 /* The DSF file to save Document Stack to. If no file specified, then the SaveAs dialog is displayed */
  933. };
  934.  
  935. struct ExecuteRunSilent{
  936.   IGBOOL                  bRunSilent;       /* Run Myriad in silent mode - Default is TRUE */
  937. };
  938.  
  939. struct ExecuteUseIntegrationOpen{
  940.   IGBOOL                  bUseIntegrationOpen;   /* Use the integration's open dialog - Default is TRUE */
  941. };
  942.  
  943. typedef enum {EXECUTE_FILEOPEN_IMAGE, EXECUTE_FILEOPEN_REDLINE, EXECUTE_FILEOPEN_REDLINE_REVIEW} ExecuteFileOpenTypes;
  944.  
  945. struct ExecuteFileOpenTool{
  946.   IGENUM                  FileOpenType;
  947. };
  948.  
  949. struct ExecuteSetWYSIWYG{
  950.   IGBOOL bWYSIWYGMarkup;         // If allowing markup on WYSIWYG images. - Default FALSE
  951. };      
  952.  
  953. struct ExecuteSetDefaultLayerName{
  954.   char LayerName[AUTHOR_LAYER_NAME_SIZE];
  955. };
  956.  
  957. typedef enum {EXECUTE_USER_INI,  
  958.               EXECUTE_MYRIAD_INI,
  959.               EXECUTE_DRIVER_INI // not allowed
  960.              }ExecuteIniFileTypes;
  961.  
  962. struct ExecuteModifyIniValue{
  963.    IGENUM   IniFileType;
  964.    char     section[MAX_INI_STRING_SIZE];
  965.    char     key[MAX_INI_STRING_SIZE];
  966.    char     value[MAX_INI_STRING_SIZE];
  967. };
  968.  
  969. struct ExecuteAddPage{
  970.    char     Filename[MAX_PATH_FILENAME];
  971.    char     Description[MAX_DESCRIPTION_SIZE];
  972.    char     AssociatedFileType[MAX_ASSOCIATED_FILE_TYPE];
  973.    int      Page;
  974.    int      SubPage;
  975. };
  976.  
  977. struct ExecuteAddManyPages{
  978.    char     BaseName[MAX_PATH_FILENAME];
  979.    char     Description[MAX_DESCRIPTION_SIZE];
  980.    char     AssociatedFileType[MAX_ASSOCIATED_FILE_TYPE];
  981.    int      Pages;
  982. };
  983.  
  984. typedef enum {EXECUTE_PUBLISH_DEFAULT                =0x0000,
  985.               EXECUTE_PUBLISH_ISOMETRIC              =0x0001,
  986.               EXECUTE_PUBLISH_DIMETRIC               =0x0002,
  987.               EXECUTE_PUBLISH_TRIMETRIC              =0x0004,
  988.               EXECUTE_PUBLISH_FRONT                  =0x0008,
  989.               EXECUTE_PUBLISH_BACK                   =0x0010,
  990.               EXECUTE_PUBLISH_LEFT                   =0x0020,
  991.               EXECUTE_PUBLISH_RIGHT                  =0x0040,
  992.               EXECUTE_PUBLISH_TOP                    =0x0080,
  993.               EXECUTE_PUBLISH_BOTTOM                 =0x0100,
  994.               EXECUTE_PUBLISH_VIEWSET_VIEWS          =0x0200,
  995.               EXECUTE_PUBLISH_MODEL_PARTS            =0x0400,
  996.               EXECUTE_PUBLISH_ALL_VIEWS              =0x07FF
  997.              }ExecutePublish3DAssemblyType;
  998.  
  999. typedef enum {EXECUTE_PUBLISH_EXPLODE_NONE                   =0x0000,
  1000.               EXECUTE_PUBLISH_EXPLODE_ISOMETRIC              =0x0001,
  1001.               EXECUTE_PUBLISH_EXPLODE_DIMETRIC               =0x0002,
  1002.               EXECUTE_PUBLISH_EXPLODE_TRIMETRIC              =0x0004,
  1003.               EXECUTE_PUBLISH_EXPLODE_FRONT                  =0x0008,
  1004.               EXECUTE_PUBLISH_EXPLODE_BACK                   =0x0010,
  1005.               EXECUTE_PUBLISH_EXPLODE_LEFT                   =0x0020,
  1006.               EXECUTE_PUBLISH_EXPLODE_RIGHT                  =0x0040,
  1007.               EXECUTE_PUBLISH_EXPLODE_TOP                    =0x0080,
  1008.               EXECUTE_PUBLISH_EXPLODE_BOTTOM                 =0x0100,
  1009.               EXECUTE_PUBLISH_EXPLODE_REVERSE_VIEWS          =0x0200,
  1010.               EXECUTE_PUBLISH_EXPLODE_ALL_VIEWS              =0x03FF
  1011.              }ExecutePublishExplode3DAssemblyType;
  1012.  
  1013. struct ExecutePublish3DAssembly{
  1014.    char     OutputFileName[MAX_PATH_FILENAME];
  1015.    IGENUM   Publish3DAssemblyType;
  1016.    IGENUM   PublishExplode3DAssemblyType;
  1017. };
  1018.  
  1019. typedef enum {EXECUTE_SET_WIREFRAME,                
  1020.               EXECUTE_SET_HIIDENLINE,  
  1021.               EXECUTE_SET_SHADED,                   
  1022.               EXECUTE_SET_COMPOSITE,           
  1023.               EXECUTE_SET_BREP,              
  1024.               EXECUTE_SET_BREP_HIDDEN,          
  1025.               EXECUTE_SET_BREP_COMPOSITE                     
  1026.              }ExecuteSet3DRenderModeType;
  1027.  
  1028. struct ExecuteSet3DRenderMode{
  1029.    IGENUM   Set3DRenderModeType;
  1030. };
  1031.  
  1032. typedef enum {EXECUTE_SET_PERSPECTIVE,                
  1033.               EXECUTE_SET_ORTHOGRAPHIC                                   
  1034.              }ExecuteSet3DProjectionModeType;
  1035.  
  1036. struct ExecuteSet3DProjectionMode{
  1037.    IGENUM   Set3DProjectionModeType;
  1038. };
  1039.  
  1040. /*------------------------------------------------------------------------------------------------------*/
  1041. /* The following structure definitions represent the data which is passed to the client application     */
  1042. /* by way of notification messages.                                                                     */
  1043. /*------------------------------------------------------------------------------------------------------*/
  1044.  
  1045. typedef enum {NOTIFY_EXECUTION_RC_OK,
  1046.               NOTIFY_EXECUTION_RC_FAILED,
  1047.               NOTIFY_EXECUTION_RC_REFUSED
  1048.              }NotifyExecutionRCTypes;
  1049.  
  1050. struct NotifyExecutionReturn{
  1051.   IGENUM Command;
  1052.   IGENUM ReturnCode;
  1053. };
  1054.  
  1055. typedef struct NotifyIntegrationEnabled{
  1056.   IGBOOL bIntegrationEnabled;
  1057. }NotifyIntegrationEnabled, *pNotifyIntegrationEnabled;
  1058.  
  1059. struct NotifyUDMenu{
  1060.   char   Text[MAX_MENU_TEXT_SIZE];     /* The text of the menu */
  1061.   IGINT  MenuID;                       /* User defined menu ID */  
  1062. };
  1063.  
  1064. struct NotifySetReturnData{
  1065.   char Data[EXECUTE_SET_RETURN_DATA_SIZE];
  1066. };
  1067.  
  1068. typedef enum {NOTIFY_FILE_LOAD_OK, NOTIFY_FILE_LOAD_INVALID_FILE, NOTIFY_FILE_LOAD_ERROR}NotifyFileLoadedTypes;
  1069. typedef enum
  1070. {
  1071.    NOTIFY_OPENMARKUP_OK,
  1072.    NOTIFY_OPENMARKUP_INVALID_FILE,
  1073.    NOTIFY_OPENMARKUP_ERROR
  1074. } NotifyOpenMarkupTypes;
  1075.  
  1076. struct NotifyFileLoaded{
  1077.   char    Filename[MAX_PATH_FILENAME];
  1078.   IGENUM  LoadReturnCode;
  1079. };
  1080.  
  1081. typedef enum
  1082. {
  1083.    NOTIFY_FILE_CONTEXT_READ_VIEW,
  1084.    NOTIFY_FILE_CONTEXT_READ_EDIT,
  1085.    NOTIFY_FILE_CONTEXT_SAVE_EDIT
  1086. } NotifyDatabaseLookupFileContextTypes;
  1087.  
  1088. struct NotifyDatabaseLookup{
  1089.   char Filename[MAX_PATH_FILENAME];
  1090.   IGENUM FileContext;
  1091. };
  1092.  
  1093. struct NotifyDatabaseISOLookup{
  1094.   char Filename[MAX_PATH_FILENAME];
  1095.   char Lookupstring[MAX_INI_STRING_SIZE];
  1096. };
  1097.  
  1098. struct NotifyOpenMarkupRequest{
  1099.   IGBOOL bEdit;
  1100.   char   Filename[MAX_PATH_FILENAME];
  1101. };
  1102.  
  1103. struct NotifySaveAsMarkupRequest{
  1104.   IGBOOL bNew;
  1105.   char   SourceFilename[MAX_PATH_FILENAME];
  1106.   char   Filename[MAX_PATH_FILENAME];
  1107. };
  1108.  
  1109. struct NotifyOpenMVSRequest{
  1110.   char   Filename[MAX_PATH_FILENAME];
  1111. };
  1112.  
  1113. struct NotifySaveAsMVSRequest{
  1114.   char   SourceFilename[MAX_PATH_FILENAME];
  1115.   char   Filename[MAX_PATH_FILENAME];
  1116. };
  1117.  
  1118. struct NotifyViewSetNeedsSavingRequest{
  1119.   char   ModelFilename[MAX_PATH_FILENAME];
  1120.   char   MVSFilename[MAX_PATH_FILENAME];
  1121.   char   MVSMarkupFilename[MAX_PATH_FILENAME];
  1122.   IGINT  NumberStandardViews;
  1123.   IGINT  NumberMarkupViews;
  1124. };
  1125.  
  1126. struct NotifyPrint{
  1127.   char Filename[MAX_PATH_FILENAME];
  1128.   char Description[MAX_PATH_FILENAME];
  1129. };
  1130.  
  1131. typedef enum
  1132. {
  1133.    NOTIFY_PRINT_COMPLETE_NO_ERROR,
  1134.    NOTIFY_PRINT_COMPLETE_ERROR_CREATING_DC_WITH_SPECIFIED_PRINTER
  1135. } NotifyPrintCompleteErrorTypes;
  1136.  
  1137. struct NotifyPrintComplete{
  1138.   IGBOOL                  bCancelled;
  1139.   IGENUM                  ErrorType;
  1140.   IGINT                   WindowsErrorNumber;
  1141. };
  1142.  
  1143. struct NotifyViewportClose{
  1144.   char                    Filename[MAX_PATH_FILENAME];
  1145. };
  1146.  
  1147. struct NotifyOpenMarkup{
  1148.   char     Filename[MAX_PATH_FILENAME];
  1149.   IGENUM   OpenMarkupReturnCode;
  1150. };
  1151.  
  1152. struct NotifySaveMarkup{
  1153.    char                    Sourcename[MAX_PATH_FILENAME];
  1154.    char                    Filename[MAX_PATH_FILENAME];
  1155. };
  1156.  
  1157. typedef enum {NOTIFY_MARKUP_SAVED_OK, NOTIFY_MARKUP_SAVED_ERROR, NOTIFY_MARKUP_SAVED_CANCELLED}NotifyMarkupSavedTypes;
  1158.  
  1159. struct NotifyMarkupSaved{
  1160.    char    Sourcename[MAX_PATH_FILENAME];
  1161.    char    Filename[MAX_PATH_FILENAME];
  1162.   IGENUM  SaveReturnCode;
  1163. };
  1164.  
  1165. typedef enum {NOTIFY_MVS_SAVED_OK, NOTIFY_MVS_SAVED_ERROR, NOTIFY_MVS_SAVED_CANCELLED}NotifyMVSSavedTypes;
  1166.  
  1167. struct NotifyMVSSaved{
  1168.    char    Sourcename[MAX_PATH_FILENAME];
  1169.    char    Filename[MAX_PATH_FILENAME];
  1170.   IGENUM   SaveReturnCode;
  1171. };
  1172.  
  1173. typedef enum {NOTIFY_MVS_VIEW_STANDARD, NOTIFY_MVS_VIEW_MARKUP}NotifyMVSViewTypes;
  1174.  
  1175. struct NotifyMVSViewCreated{
  1176.    char    Sourcename[MAX_PATH_FILENAME];
  1177.    char    Viewname[MAX_DESCRIPTION_SIZE];
  1178.   IGENUM   ViewType;
  1179. };
  1180.  
  1181. struct NotifyCloseMarkup{
  1182.   char                    Filename[MAX_PATH_FILENAME];
  1183. };
  1184.  
  1185. struct NotifyCloseMVS{
  1186.   char                    Filename[MAX_PATH_FILENAME];
  1187. };
  1188.  
  1189. struct NotifyImageChange{
  1190.   char                    Filename[MAX_PATH_FILENAME];
  1191. };
  1192.  
  1193. struct NotifyGetISOString{
  1194.   IGENUM                  StringType;                   /* The type of ISO string this is ExecuteISOStringTypes */
  1195.   unsigned short          StringNumber;                 /* The index of this string within the string type         */
  1196.   char                    String[MAX_ISO_STRING_SIZE];  /* The string itself                                       */
  1197. };
  1198.  
  1199. struct NotifyGetLayerInfoEntry{
  1200.   unsigned short     LayerID;
  1201.   IGBOOL             bVisible;
  1202.   char               LayerName[AUTHOR_LAYER_NAME_SIZE];
  1203.   char               AuthorName[AUTHOR_LAYER_NAME_SIZE];
  1204. };
  1205.  
  1206. struct NotifyGetLayerInfo{
  1207.   unsigned short     NumberLayers;
  1208.   char               LayerEntryArray;   /* Used to gain addressability to layer entry array */
  1209. };
  1210.  
  1211. struct NotifyMouseMove{
  1212.   unsigned short     x;
  1213.   unsigned short     y;
  1214. };
  1215.  
  1216. struct NotifyLButtonDown{
  1217.   unsigned short     x;
  1218.   unsigned short     y;
  1219. };
  1220.  
  1221. struct NotifyLButtonUp{
  1222.   unsigned short     x;
  1223.   unsigned short     y;
  1224. };
  1225.  
  1226. struct NotifyLButtonDblClick{
  1227.   unsigned short     x;
  1228.   unsigned short     y;
  1229. };
  1230.  
  1231. /* for INTG_LOAD_FILEBEGIN */
  1232. typedef struct NotifyLoadFileB{
  1233.   IGINT     symbolID;
  1234.   IGINT     filehandle;
  1235.   char      filepathname[1];
  1236. }NotifyLoadFileB, *pNotifyLoadFileB;
  1237.  
  1238. /* for INTG_LOAD_BLOCKBEGIN */
  1239. typedef struct NotifyLoadBlockB{
  1240.   IGINT     symbolID;
  1241.   IGINT     filehandle;
  1242.   IGINT     blockhandle;
  1243.   char      blockname[1];
  1244. }NotifyLoadBlockB, *pNotifyLoadBlockB;
  1245.  
  1246. /* for INTG_LOAD_ATTRIBUTE */
  1247. typedef struct NotifyLoadAttrib{
  1248.   IGINT     symbolID;
  1249.   IGINT     filehandle;
  1250.   IGINT     blockhandle;
  1251.   IGINT     attribhandle;
  1252.   IGINT     blobsize;
  1253.   char      blob[1];
  1254. }NotifyLoadAttrib, *pNotifyLoadAttrib;
  1255.  
  1256. /* for INTG_LOAD_BLOCKEND */
  1257. typedef struct NotifyLoadBlockE{
  1258.   IGINT     symbolID;
  1259.   IGINT     filehandle;
  1260.   IGINT     blockhandle;
  1261. }NotifyLoadBlockE, *pNotifyLoadBlockE;
  1262.  
  1263. /* for INTG_LOAD_FILEEND */
  1264. typedef struct NotifyLoadFileE{
  1265.   IGINT     symbolID;
  1266.   IGINT     filehandle;
  1267. }NotifyLoadFileE, *pNotifyLoadFileE;
  1268.  
  1269. /* for INTG_DISPLAY_FILEBEGIN */
  1270. typedef struct NotifyDisplayFileB{
  1271.   IGINT     symbolID;
  1272.   IGINT     filehandle;
  1273. }NotifyDisplayFileB, *pNotifyDisplayFileB;
  1274.  
  1275. /* for INTG_DISPLAY_BLOCKBEGIN */
  1276. typedef struct NotifyDisplayBlockB{
  1277.   IGINT     symbolID;
  1278.   IGINT     filehandle;
  1279.   IGINT     blockhandle;
  1280.   IGINT     extents[4];
  1281.   /*
  1282.   Extents are in pixel units.
  1283.   They are offset from origin in upper-left corner of viewport.
  1284.   0 = upper-left  x
  1285.   1 = upper-left  y
  1286.   2 = lower-right x
  1287.   3 = lower-right y
  1288.   */
  1289. }NotifyDisplayBlockB, *pNotifyDisplayBlockB;
  1290.  
  1291. /* for INTG_DISPLAY_ATTRIBUTE */
  1292. typedef struct NotifyDisplayAttrib{
  1293.   IGINT     symbolID;
  1294.   IGINT     filehandle;
  1295.   IGINT     blockhandle;
  1296.   IGINT     attribhandle;
  1297. }NotifyDisplayAttrib, *pNotifyDisplayAttrib;
  1298.  
  1299. /* for INTG_DISPLAY_BLOCKEND */
  1300. typedef struct NotifyDisplayBlockE{
  1301.   IGINT     symbolID;
  1302.   IGINT     filehandle;
  1303.   IGINT     blockhandle;
  1304. }NotifyDisplayBlockE, *pNotifyDisplayBlockE;
  1305.  
  1306. /* for INTG_DISPLAY_FILEEND */
  1307. typedef struct NotifyDisplayFileE{
  1308.   IGINT     symbolID;
  1309.   IGINT     filehandle;
  1310. }NotifyDisplayFileE, *pNotifyDisplayFileE;
  1311.  
  1312. /* for INTG_LAUNCH_ATTRIBBLOCK */
  1313. typedef struct NotifyLaunchBlock{
  1314.   IGINT     symbolID;
  1315.   IGINT     filehandle;
  1316.   IGINT     blockhandle;
  1317.   IGINT     extents[4];
  1318.   /*  Extents are in the same format as they are for NotifyDisplayBlockB  */
  1319. }NotifyLaunchBlock, *pNotifyLaunchBlock;
  1320.  
  1321. typedef enum {
  1322.     MONOCHROME_RASTER, 
  1323.     COLOR_RASTER, 
  1324.     VECTOR, 
  1325.     TEXT
  1326. } ImageTypesEnum;
  1327.  
  1328. typedef struct {
  1329.   IGENUM Type;
  1330. } ImageType;
  1331.  
  1332. typedef enum {
  1333.     DEGREES_0,
  1334.     DEGREES_90,
  1335.     DEGREES_180,
  1336.     DEGREES_270
  1337. } OrientTypesEnum;
  1338.  
  1339. typedef struct {
  1340.     IGENUM Type;
  1341. } OrientType;
  1342.  
  1343. typedef enum {
  1344.   WINDOW_MINIMIZED,
  1345.   WINDOW_MAXIMIZED,
  1346.   WINDOW_WINDOWED
  1347. } WindowStateEnum;
  1348.  
  1349. typedef struct {
  1350.     IGENUM State;
  1351. } WindowState;
  1352.  
  1353. typedef struct {
  1354.     double WorldScale;
  1355.     char   Filename[MAX_PATH_FILENAME];
  1356. } ImageInfo, *pImageInfo;
  1357.  
  1358. typedef struct NotifyInquireDocument{
  1359.     double      Clip[4];                               /* current viewed area */
  1360.     double      Limits[4];                             /* limits of the document */
  1361.     char        MarkupFile[MAX_PATH_FILENAME];         /* The editable markup file if one opened, NULL if no markup opened */
  1362.   IGBOOL      MarkupChanged;                         /* If the current editable markup has been changed */
  1363.     char        Description[INQUIRE_DESCRIPTION_SIZE]; /* extracted from the folder file */    
  1364.     IGINT       DocWindowSize[4];                      /* The RECT associated with the image window */
  1365.     IGINT       DocWindowPosition[4];                  /* The device location of the window image (RECT) */
  1366.   WindowState DocWindowState;                        /* The state of the image window */
  1367.     IGINT       MyrWindowSize[4];                      /* The RECT associated with Myriad's main window */
  1368.     IGINT       MyrWindowPosition[4];                  /* The device location of Myriad's main window */
  1369.   WindowState MyrWindowState;                        /* The state of Myriad's main window */
  1370.     IGINT       NumberOfPages;                         /* The number of pages in the image */
  1371.     IGINT       ActivePage;                            /* Currently displayed page */
  1372.     ImageType   ImageType;                             /* Monochrome Raster, Color Raster, Vector, Text */
  1373.     OrientType  Orientation;                           /* Orientation (rotation)*/
  1374.     IGINT       Resolution;                            /* DPI */
  1375.     IGINT       Reserved;                              /* Four byte field for correct compiler structure padding in 16 and 32 bit environments */
  1376.     IGINT       NumberOfFiles;                         /* Number of entries in the filepath array of files */
  1377.     ImageInfo   ImageInfo[1];                          /* For all images (first entry and subsequent overlays): full path and worldscale */
  1378. } NotifyInquireDocument, *pNotifyInquireDocument;
  1379.  
  1380. struct ProductVersion{
  1381.   IGINT       Major;                                 /* The major number of the release */
  1382.   IGINT       Minor1;                                /* The primary minor number of the release */
  1383.   IGINT       Minor2;                                /* The secondary minor number of the release */
  1384.   IGINT       Build;                                 /* The build number of the release */
  1385. };
  1386.  
  1387. typedef enum {DOCUMENT_MAIN_IMAGE, DOCUMENT_READONLY_OVERLAY, DOCUMENT_EDITABLE_MARKUP}NotifyDocumentStackImageType;
  1388.  
  1389. typedef struct NotifyDocumentStackImage{
  1390.     char   FileName[MAX_PATH_FILENAME];                          /* The filename of the image */
  1391.   IGENUM FileType;                                             /* The file type NotifyDocumentStackImageType */
  1392. } NotifyDocumentStackImage, *pNotifyDocumentStackImage;
  1393.  
  1394. typedef struct NotifyDocumentStackDocument{
  1395.   char                    DocumentName[MAX_DESCRIPTION_SIZE];  /* The document name */
  1396.   IGINT                   NumberImages;                        /* The number of images contained in the document. This many
  1397.                                                                   ImageInfo structures will follow this NotifyDocumentStackDocument
  1398.                                                                   structure.
  1399.                                                                */
  1400. }NotifyDocumentStackDocument, *pNotifyDocumentStackDocument;
  1401.  
  1402. typedef struct NotifyInquireSystem{
  1403.    struct ProductVersion        Version;                   /* Myriad's product version */
  1404.    WindowState                  MyrWindowState;            /* The state of Myriad's main window */
  1405.    struct PrintSettings         PrintSettings;             /* The PrintSettings structure currently being used */
  1406.    char                         CurrentAuthor[AUTHOR_LAYER_NAME_SIZE]; /* The name of the current author */
  1407.    IGINT                        NumberDocumentsInStack;    /* The number of documents in the current document stack */
  1408.    NotifyDocumentStackDocument  DocumentInfo[1];           /* For every document in the current document stack */
  1409. } NotifyInquireSystem, *pNotifyInquireSystem;
  1410.  
  1411.  
  1412. typedef struct NotifyAuthorEntry{
  1413.   char                    AuthorName[AUTHOR_LAYER_NAME_SIZE]; /* The name of the author */
  1414.   IGBOOL                  bSelect;                            /* Select the author (TRUE) or deselect the author (FALSE) */
  1415. }NotifyAuthorEntry, *pNotifyAuthorEntry;
  1416.  
  1417. typedef struct NotifyGetAuthors{
  1418.   IGINT                   NumberAuthors;                      /* Number of NotifyAuthorEntry records */
  1419.   NotifyAuthorEntry       Authors[1];                          /* Start of array of NotifyAuthorEntry records */
  1420. }NotifyGetAuthors, *pNotifyGetAuthors;
  1421.  
  1422.  
  1423. typedef struct NotifyChangemarkViewed{
  1424.   char                    Filename[MAX_PATH_FILENAME];               /* The base (parent) file the changemark is associated with */
  1425.   char                    ChangemarkTitle[MAX_DESCRIPTION_SIZE];     /* The title of the changemark */
  1426. }NotifyChangemarkViewed, *pNotifyChangemarkViewed;
  1427.  
  1428. typedef struct NotifyGetChangemarksEntry{
  1429.   char                    Filename[MAX_PATH_FILENAME];                  /* The base (parent) file the changemark is associated with */
  1430.   char                    ChangemarkTitle[MAX_DESCRIPTION_SIZE];        /* The title of the changemark */
  1431.   char                    ChangemarkText[MAX_CHANGEMARK_TEXT_SIZE];     /* The text of the changemark */
  1432.   char                    ChangemarkAuthor[AUTHOR_LAYER_NAME_SIZE];     /* The author who created this changemark */
  1433.   char                    ChangemarkLayerName[AUTHOR_LAYER_NAME_SIZE];  /* The name of the layer the changemark resides on */
  1434.   IGBOOL                  bChangemarkLayerVisible;                      /* If the changemark's layer is visible */
  1435. }NotifyGetChangemarksEntry, *pNotifyGetChangemarksEntry;
  1436.  
  1437. typedef struct NotifyGetChangemarks{
  1438.   IGINT                         NumberChangemarks;                   /* The number of NotifyGetChangemarksEntry structures in the Changemark array */
  1439.   NotifyGetChangemarksEntry     Changemark[1];                       /* The array of NotifyGetChangemarksEntry structures, one for each changemark */
  1440. }NotifyGetChangemarks, *pNotifyGetChangemarks;
  1441.  
  1442. typedef struct NotifyNewMarkup{
  1443.   char                    Filename[MAX_PATH_FILENAME];               /* The base (parent) file the markup is associated with */
  1444.   char                    Authorname[AUTHOR_LAYER_NAME_SIZE];        /* The name of the author who created the markup */
  1445.   char                    Layername[AUTHOR_LAYER_NAME_SIZE];         /* The name of the layer created */
  1446. }NotifyNewMarkup, *pNotifyNewMarkup;
  1447.  
  1448. typedef struct NotifyRunSilentMessage{
  1449.   char                    Text[MAX_PATH_FILENAME];                   /* The message text that would appear in the message dialog */
  1450.   char                    Caption[MAX_PATH_FILENAME];                /* The message caption that would appear in the message dialog */
  1451.   IGINT                   Style;                                     /* The style parameter for the message box */
  1452. }NotifyRunSilentMessage, *pNotifyRunSilentMessage;
  1453.  
  1454. typedef struct Notify3DModelLoadEntity{
  1455.   IGINT                   EntityID;                                  /* The ID the entity is known by in the system */
  1456.   char                    EntityName[MAX_PATH_FILENAME];             /* The name of the component entity */
  1457.   IGINT                   NumberChildren;                            /* The number of children the entity has */
  1458.   IGBOOL                  ContainsGeometry;                          /* Whether or not the entity contains geometry */
  1459. }Notify3DModelLoadEntity, *pNotify3DModelLoadEntity;
  1460.  
  1461. typedef struct Notify3DModelLoaded{
  1462.   IGINT                   EntityID;                                  /* The ID the entity is known by in the system */
  1463.   char                    Filename[MAX_PATH_FILENAME];               /* The filename of the model being loaded */
  1464.   IGINT                   NumberModelEntities;                       /* The total number of Notify3DModelLoadEntity structures contained in the ModelEntities array */
  1465.   Notify3DModelLoadEntity ModelEntities[1];                          /* The array of Notify3DModelLoadEntity structures for the model */
  1466. }Notify3DModelLoaded, *pNotify3DModelLoaded;
  1467.  
  1468. typedef struct Notify3DComponentSelectionChanged{
  1469.   IGINT                   EntityID;                                  /* The ID the component list is known by in the system */
  1470.   char                    EntityName[MAX_PATH_FILENAME];             /* The name of the component */
  1471.   IGBOOL                  ContainsGeometry;                          /* Whether or not the component contains geometry */
  1472.   IGBOOL                  Selected;                                  /* If the component is selected */
  1473.   IGBOOL                  GeometryVisible;                           /* If the geometry for the component is visible (not hidden) */
  1474. }Notify3DComponentSelectionChanged, *pNotify3DComponentSelectionChanged;
  1475.  
  1476. typedef struct Notify3DComponentListEnabled{
  1477.   IGINT                   EntityID;                                  /* The ID the component list is known by in the system */
  1478.   char                    Filename[MAX_PATH_FILENAME];               /* The name of the component */
  1479. }Notify3DComponentListEnabled, *pNotify3DComponentListEnabled;
  1480.  
  1481. typedef enum {HTML_EXPORT_FILE_HTML, HTML_EXPORT_FILE_IMAGE, HTML_EXPORT_FILE_SUPPORT} HTMLExportFileTypes;
  1482.  
  1483. struct NotifyHTMLExportFileWritten{
  1484.   char                    Filename[MAX_PATH_FILENAME];
  1485.   IGENUM                  FileType;
  1486. };
  1487.  
  1488. typedef struct Notify3DViewSetLoadEntity{
  1489.   char                    ViewName[MAX_DESCRIPTION_SIZE];            /* The name of the view set view */
  1490.   IGENUM                  ViewType;                                  /* The NotifyMVSViewTypes for this view indicating view type */
  1491. }Notify3DViewSetLoadEntity, *pNotify3DViewSetLoadEntity;
  1492.  
  1493. typedef struct Notify3DViewSetLoaded{
  1494.   char                      ModelFilename[MAX_PATH_FILENAME];          /* The filename of the model the view set is being loaded against */
  1495.   char                      MVSFilename[MAX_PATH_FILENAME];            /* The filename of the view set being loaded */
  1496.   IGINT                     NumberViewEntities;                        /* The total number of Notify3DViewSetLoadEntity structures contained in the ViewSetEntities array */
  1497.   Notify3DViewSetLoadEntity ViewSetEntities[1];                        /* The array of Notify3DViewSetLoadEntity structures for the view set */
  1498. }Notify3DViewSetLoaded, *pNotify3DViewSetLoaded;
  1499.  
  1500. #endif /* INC_IGCINC_H */
  1501.  
  1502.